/**
 * 文章相关
 */
import request from '../utils/request'

// 根据频道ID获取文章列表
export function getArticlesById (channelId, timestamp, with_top = 1) {
  return request.get('articles', {
    params: {
      channel_id: channelId, timestamp, with_top
    }
  })
}
// 根据文章ID添加不感兴趣
/**
 *
 * @param {*} target 文章ID
 */
export function disLikeById (target) {
  return request.post('article/dislikes', {
    target
  })
}

// 根据文章ID举报
/**
 *
 * @param {*} target 文章ID
 * @param {*} type 举报类型
 */
export function reportById (target, type) {
  return request.post('article/reports', {
    target, type
  })
}

/**
 * 联想自动补全
 * @param {*} q 搜索词
 */
export function suggest (q) {
  return request.get('suggestion', {
    params: {
      q
    }
  })
}

/**
 * 搜索文章
 * @param {*} page 页码
 * @param {*} per_page 每页条数
 * @param {*} q 搜索关键字
 */
// eslint-disable-next-line camelcase
export function searchArticles ({ page = 1, per_page = 20, q }) {
  return request.get('search', {
    params: {
      page,
      per_page,
      q
    }
  })
}

/**
 * 获取文章详情
 * @param {*} id 根据文章ID获取文章详情
 */
export function getDetailById (id) {
  return request.get(`articles/${id}`)
}

/**
 * 对文章不喜欢
 * @param {*} target 文章ID
 */
export function disLike (target) {
  return request.post('article/dislikes', {
    target
  })
}

/**
 * 取消对文章不喜欢
 * @param {*} target 文章ID
 */
export function unDisLike (target) {
  return request.delete(`article/dislikes/${target}`)
}

/**
 * 对文章点赞
 * @param {*} target 文章ID
 */
export function like (target) {
  return request.post('article/likings', {
    target
  })
}

/**
 * 取消对文章点赞
 * @param {*} target 文章ID
 */
export function unLike (target) {
  return request.delete(`article/likings/${target}`)
}

/**
 *
 * @param {*} param 获取评论列表
 */
export function getComments ({ type, source, offset, limit = 10 }) {
  return request.get('comments', {
    params: {
      type, source, offset, limit
    }
  })
}

/**
 * 对文章评论或回复文章某条评论
 * @param {*} target 做评论的时候：文章ID  做回复的时候：评论ID
 * @param {*} content 内容
 * @param {*} artId 文章的ID 当你的做回复的时候使用
 */
export const comment = (target, content, art_id = null) => {
  return request.post('comments', { target, content, art_id })
}
